package com.kitty.spring.annotationdriven.configuration;

import com.kitty.spring.annotationdriven.beans.Color;
import com.kitty.spring.annotationdriven.beans.Green;
import com.kitty.spring.annotationdriven.beans.Person;
import com.kitty.spring.annotationdriven.beans.Red;
import com.kitty.spring.annotationdriven.factory.MyFactoryBean;
import com.kitty.spring.annotationdriven.importcustomize.MyImportBeanDefinitionRegistrar;
import com.kitty.spring.annotationdriven.importcustomize.MyImportSelector;
import org.springframework.context.annotation.*;

/**
 * 给容器中添加组件
 * 1）包扫描+组件标注注解（@controller|@sevice|@Repository|@Component）【自己写的组件注册】
 * 2）@Bean【第三方组件注册】
 * 3）@Import 【快速给容器中导入一个组件】
 *      import可以直接将需要注册的组件放进去，
 *      也可以实现ImportSelector和ImportBeanDefinitionRegistrar接口进行组件的注册
 *
 * 4）使用factoryBean创建bean实例放到容器中
 *
 * @Author SHEN
 * @Date 2020/12/6
 */
@Configuration
@Import({Red.class, Green.class, MyImportSelector.class, MyImportBeanDefinitionRegistrar.class})
public class BeanConfig2 {

    @Bean
    public Person person(){
        return new Person("张三",24,"大三子");
    }


    @Bean
    public MyFactoryBean myFactoryBean(){
        return new MyFactoryBean();
    }


}
